home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / programming / other / sounddt41src / classbase.h < prev    next >
C/C++ Source or Header  |  1999-04-19  |  3KB  |  122 lines

  1. #ifndef DATATYPES_SOUNDCLASS_H
  2. #include <datatypes/soundclass.h>
  3. #endif
  4.  
  5. /****************************************************************************/
  6.  
  7. struct ClassBase
  8. {
  9.     /* std library stuff */
  10.     struct Library            LibNode;
  11.      UWORD                pad_word;
  12.      BPTR                LibSegment;
  13.      struct SignalSemaphore    cb_LibLock;
  14.      /* library bases */
  15. #ifndef __MAXON__
  16.     struct Library            *cb_IntuitionBase;
  17.     struct Library            *cb_GfxBase;
  18.     struct Library            *cb_SysBase;
  19.     struct Library            *cb_DOSBase;
  20.     struct Library            *cb_UtilityBase;
  21.     struct Library            *cb_DataTypesBase;
  22.     struct Library            *cb_IFFParseBase;
  23.     struct Library            *cb_TapeDeckBase;
  24. #endif
  25.     Class                      *cb_Class;
  26.     ULONG                *cb_Methods;
  27.     /* prefs */
  28.     BOOL                cb_AIFF;
  29.     BOOL                cb_AHI;
  30.     ULONG                cb_AHIModeID;
  31.     ULONG                cb_AHIMixFrequency;
  32.     UWORD                cb_NomWidth;
  33.     UWORD                cb_NomHeight;
  34.     ULONG                cb_WfCol[3];
  35.     ULONG                cb_BgCol[3];
  36.     BOOL                cb_Compress;
  37.     BOOL                cb_ForceAHIMode;
  38.     ULONG                cb_BufferSize;
  39.     UWORD                cb_Volume;
  40.     BOOL                cb_ControlPanel;
  41.     BOOL                cb_NoGTSlider;
  42. };
  43.  
  44. /****************************************************************************/
  45.  
  46. struct InstanceData
  47. {
  48.     struct ClassBase    *ClassBase;
  49.     struct SignalSemaphore     Lock; 
  50.     /* v39 tags */
  51.     struct VoiceHeader  VoiceHeader;
  52.     BYTE            *Sample;
  53.     ULONG             SampleLength;
  54.     UWORD             Frequency;
  55.     UWORD             Volume;
  56.     UWORD             Cycles;
  57.     /* v40 tags */
  58.     UWORD             Continuous;
  59.     struct Task        *SignalTask;
  60.     BYTE             SignalBit;
  61.     /* v41 tags */
  62.     UBYTE             SampleType;
  63.     ULONG             Panning;
  64.     /* additional tags */
  65.     BOOL            Immediate;
  66.     BOOL            Repeat;
  67.     BOOL            DelayedImmed;
  68.     BOOL            pad_word2;
  69.     /* offset */
  70.     ULONG            StartSample;
  71.     ULONG            EndSample;
  72.     /* private data */
  73.     struct Process    *PlayerProc;
  74.     struct MsgPort    *PlayerPort;
  75.     /* for STM_STOP (doubleclick) */
  76.     struct timeval        LastClick;
  77.     /* DTM_SELECT */
  78.     WORD            MinX;
  79.     WORD            MaxX;
  80.     BOOL            MarkMode;
  81.     /* controlpanel */
  82.     WORD            pad_word;
  83.     WORD            TapeDeckHeight;
  84.     BOOL            ControlPanel;
  85.     struct Gadget        *TapeDeckGadget;
  86.     struct Gadget        *VolumeSlider;
  87.     struct Gadget        *ActiveMember;
  88.  
  89.     struct Screen        *Screen;    // DTM_DRAW
  90.     struct DrawInfo    *DrawInfo;    // DTM_DRAW
  91.     struct Window    *Window;
  92.     struct Requester    *Requester;
  93.     struct Gadget        *Gadget;
  94.  
  95.     struct ColorMap    *ColorMap;        // Needed to release allocated pens, GInfo of DTM_REMOVEDTOBJECT == NULL    
  96.     WORD            WaveformPen;    // Drawing pens
  97.     WORD            BackgroundPen;
  98.  
  99.     BOOL            ForceRefresh;    // bugfix (?) for gmv
  100. };
  101.  
  102. /****************************************************************************/
  103.  
  104. struct ObjectMsg {
  105.     struct Message    Message;
  106.     ULONG            Command;
  107.     APTR            Data;
  108. //    ULONG            ErrorCode;
  109. };
  110.  
  111. enum {
  112.     COMMAND_INIT,
  113.     COMMAND_EXIT,
  114.     COMMAND_PLAY,
  115.     COMMAND_STOP,
  116.     COMMAND_PAUSE,
  117.     COMMAND_PERVOL,
  118.     COMMAND_NEXT_BUFFER
  119. };
  120.  
  121. /****************************************************************************/
  122.